{
 "cells": [
  {
   "cell_type": "markdown",
   "source": [
    "# RCNN\n",
    "## 算法流程\n",
    "1. 候选区域生成：一张图像生成1k~2k个候选区域（采用Selective Search方法）\n",
    "2. 特征提取：对每个候选区域，使用深度卷积神经网络提取特征（CNN）\n",
    "3. 类别判断：特征送入每一类的SVM分类器，判别是否属于该类\n",
    "4. 位置精修：使用回归器精细修正候选框位置\n",
    "## Selective Search\n",
    "1. 使用一种过分割手段，将图像分割成小区域 (1k~2k 个)\n",
    "2. 查看现有小区域，按照合并规则合并可能性最高的相邻两个区域。重复直到整张图像合并成一个区域位置\n",
    "3. 输出所有曾经存在过的区域，所谓候选区域\n",
    "\n",
    "合并规则如下：区域的颜色直方图、梯度直方图、面积和位置。\n",
    "1. 颜色（颜色直方图）相近的\n",
    "2. 纹理（梯度直方图）相近的 \n",
    "3. 合并后总面积小的： 保证合并操作的尺度较为均匀，避免一个大区域陆续“吃掉”其他小区域 （例：设有区域a-b-c-d-e-f-g-h。较好的合并方式是：ab-cd-ef-gh -> abcd-efgh -> abcdefgh。 不好的合并方法是：ab-c-d-e-f-g-h ->abcd-e-f-g-h ->abcdef-gh -> abcdefgh）\n",
    "4. 合并后，总面积在其BBOX中所占比例大的： 保证合并后形状规则。\n",
    "## CNN特征提取\n",
    "1. 将各个矩形候选框缩放成统一正方形大小（例如227x227）输入CNN模型\n",
    "2. 经过一系列卷积激活池化最后通过全连接层得到(2000x4096)特征向量\n",
    "## SVM\n",
    "作者试验发现，候选区域与真实BBOX的IOU小于0.3时，就将其标注为负样本。\n",
    "1. 提前训练好N个类别分类器SVM，每个SVM有4096个参数\n",
    "2. 将CNN得到的(2000x4096)点乘(4096xN)\n",
    "## 位置精修\n",
    "目标检测问题的衡量标准是重叠面积：许多看似准确的检测结果，往往因为候选框不够准确，重叠面积很小。故需要一个位置精修步骤。 回归器对每一类目标，使用一个线性脊回归器进行精修。正则项。\n",
    "输入为深度网络pool5层的4096维特征，输出为xy方向的缩放和平移。 训练样本判定为本类的候选框中，和真值重叠面积大于0.6的候选框。\n"
   ],
   "metadata": {}
  }
 ],
 "metadata": {
  "orig_nbformat": 4,
  "language_info": {
   "name": "python"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}